Conversation
- @shiftcode/inversify-logger@2.1.0-pr254.0 - @shiftcode/nest-logger@2.1.0-pr254.0
BREAKING-CHANGE: newly added to sc-commons-public
BREAKING-CHANGE: newly added to sc-commons-public
BREAKING-CHANGE: newly added to sc-commons-public
BREAKING-CHANGE: newly added to sc-commons-public
BREAKING-CHANGE: newly added to sc-commons-public
even if there are no test at all
- @shiftcode/cdk-utilities@0.0.0-pr254.1 - @shiftcode/iac-utilities@0.0.0-pr254.1 - @shiftcode/inversify-logger@0.0.0-pr254.1 - @shiftcode/lambda-utilities@0.0.0-pr254.1 - @shiftcode/nest-logger@0.0.0-pr254.1
BREAKING-CHANGE: newly added to sc-commons-public
BREAKING-CHANGE: newly added to sc-commons-public
- @shiftcode/airtable-mapper@0.0.0-pr254.2 - @shiftcode/airtable-syncer@0.0.0-pr254.2 - @shiftcode/cdk-utilities@0.0.0-pr254.2 - @shiftcode/iac-utilities@0.0.0-pr254.2 - @shiftcode/inversify-logger@0.0.0-pr254.2 - @shiftcode/lambda-utilities@0.0.0-pr254.2 - @shiftcode/nest-logger@0.0.0-pr254.2
BREAKING CHANGE: - `fetchSsmStringParamValue` now exported from `@shiftcode/lambda-utilities/ssm` - `S3Helper` now exported from `@shiftcode/lambda-utilities/s3`
- @shiftcode/airtable-mapper@0.0.0-pr254.6 - @shiftcode/airtable-syncer@0.0.0-pr254.6 - @shiftcode/branch-utilities@6.0.0-pr254.3 - @shiftcode/cdk-utilities@0.0.0-pr254.6 - @shiftcode/eslint-config-recommended@7.0.0-pr254.3 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.3 - @shiftcode/iac-utilities@0.0.0-pr254.6 - @shiftcode/inversify-logger@0.0.0-pr254.6 - @shiftcode/lambda-utilities@0.0.0-pr254.6 - @shiftcode/logger@5.0.0-pr254.3 - @shiftcode/nest-logger@0.0.0-pr254.6 - @shiftcode/publish-helper@6.0.0-pr254.3 - @shiftcode/utilities@5.0.0-pr254.3
8b71249 to
58a1787
Compare
- @shiftcode/airtable-mapper@1.0.0-pr254.1 - @shiftcode/airtable-syncer@1.0.0-pr254.1 - @shiftcode/branch-utilities@6.0.0-pr254.4 - @shiftcode/cdk-utilities@1.0.0-pr254.1 - @shiftcode/eslint-config-recommended@7.0.0-pr254.4 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.4 - @shiftcode/iac-utilities@1.0.0-pr254.1 - @shiftcode/inversify-logger@1.0.0-pr254.1 - @shiftcode/lambda-utilities@1.0.0-pr254.1 - @shiftcode/logger@5.0.0-pr254.4 - @shiftcode/nest-logger@1.0.0-pr254.1 - @shiftcode/publish-helper@6.0.0-pr254.4 - @shiftcode/utilities@5.0.0-pr254.4
- @shiftcode/airtable-mapper@1.0.0-pr254.2 - @shiftcode/airtable-syncer@1.0.0-pr254.2 - @shiftcode/branch-utilities@6.0.0-pr254.5 - @shiftcode/cdk-utilities@1.0.0-pr254.2 - @shiftcode/eslint-config-recommended@7.0.0-pr254.5 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.5 - @shiftcode/iac-utilities@1.0.0-pr254.2 - @shiftcode/inversify-logger@1.0.0-pr254.2 - @shiftcode/lambda-utilities@1.0.0-pr254.2 - @shiftcode/logger@5.0.0-pr254.5 - @shiftcode/nest-logger@1.0.0-pr254.2 - @shiftcode/publish-helper@6.0.0-pr254.5 - @shiftcode/utilities@5.0.0-pr254.5
- @shiftcode/airtable-mapper@1.0.0-pr254.3 - @shiftcode/airtable-syncer@1.0.0-pr254.3 - @shiftcode/branch-utilities@6.0.0-pr254.6 - @shiftcode/cdk-utilities@1.0.0-pr254.3 - @shiftcode/eslint-config-recommended@7.0.0-pr254.6 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.6 - @shiftcode/iac-utilities@1.0.0-pr254.3 - @shiftcode/inversify-logger@1.0.0-pr254.3 - @shiftcode/lambda-utilities@1.0.0-pr254.3 - @shiftcode/logger@5.0.0-pr254.6 - @shiftcode/nest-logger@1.0.0-pr254.3 - @shiftcode/publish-helper@6.0.0-pr254.6 - @shiftcode/utilities@5.0.0-pr254.6
- @shiftcode/airtable-mapper@1.0.0-pr254.4 - @shiftcode/airtable-syncer@1.0.0-pr254.4 - @shiftcode/branch-utilities@6.0.0-pr254.7 - @shiftcode/cdk-utilities@1.0.0-pr254.4 - @shiftcode/eslint-config-recommended@7.0.0-pr254.7 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.7 - @shiftcode/iac-utilities@1.0.0-pr254.4 - @shiftcode/inversify-logger@1.0.0-pr254.4 - @shiftcode/lambda-utilities@1.0.0-pr254.4 - @shiftcode/logger@5.0.0-pr254.7 - @shiftcode/nest-logger@1.0.0-pr254.4 - @shiftcode/publish-helper@6.0.0-pr254.7 - @shiftcode/utilities@5.0.0-pr254.7
- @shiftcode/airtable-mapper@1.0.0-pr254.5 - @shiftcode/airtable-syncer@1.0.0-pr254.5 - @shiftcode/branch-utilities@6.0.0-pr254.8 - @shiftcode/cdk-utilities@1.0.0-pr254.5 - @shiftcode/eslint-config-recommended@7.0.0-pr254.8 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.8 - @shiftcode/iac-utilities@1.0.0-pr254.5 - @shiftcode/inversify-logger@1.0.0-pr254.5 - @shiftcode/lambda-utilities@1.0.0-pr254.5 - @shiftcode/logger@5.0.0-pr254.8 - @shiftcode/nest-logger@1.0.0-pr254.5 - @shiftcode/publish-helper@6.0.0-pr254.8 - @shiftcode/utilities@5.0.0-pr254.8
- @shiftcode/airtable-mapper@1.0.0-pr254.6 - @shiftcode/airtable-syncer@1.0.0-pr254.6 - @shiftcode/branch-utilities@6.0.0-pr254.9 - @shiftcode/cdk-utilities@1.0.0-pr254.6 - @shiftcode/eslint-config-recommended@7.0.0-pr254.9 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.9 - @shiftcode/iac-utilities@1.0.0-pr254.6 - @shiftcode/inversify-logger@1.0.0-pr254.6 - @shiftcode/lambda-utilities@1.0.0-pr254.6 - @shiftcode/logger@5.0.0-pr254.9 - @shiftcode/nest-logger@1.0.0-pr254.6 - @shiftcode/publish-helper@6.0.0-pr254.9 - @shiftcode/utilities@5.0.0-pr254.9
- @shiftcode/airtable-mapper@1.0.0-pr254.7 - @shiftcode/airtable-syncer@1.0.0-pr254.7 - @shiftcode/branch-utilities@6.0.0-pr254.10 - @shiftcode/cdk-utilities@1.0.0-pr254.7 - @shiftcode/eslint-config-recommended@7.0.0-pr254.10 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.10 - @shiftcode/iac-utilities@1.0.0-pr254.7 - @shiftcode/inversify-logger@1.0.0-pr254.7 - @shiftcode/lambda-utilities@1.0.0-pr254.7 - @shiftcode/logger@5.0.0-pr254.10 - @shiftcode/nest-logger@1.0.0-pr254.7 - @shiftcode/publish-helper@6.0.0-pr254.10 - @shiftcode/utilities@5.0.0-pr254.10
- @shiftcode/airtable-mapper@1.0.0-pr254.8 - @shiftcode/airtable-syncer@1.0.0-pr254.8 - @shiftcode/branch-utilities@6.0.0-pr254.11 - @shiftcode/cdk-utilities@1.0.0-pr254.8 - @shiftcode/eslint-config-recommended@7.0.0-pr254.11 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.11 - @shiftcode/iac-utilities@1.0.0-pr254.8 - @shiftcode/inversify-logger@1.0.0-pr254.8 - @shiftcode/lambda-utilities@1.0.0-pr254.8 - @shiftcode/logger@5.0.0-pr254.11 - @shiftcode/nest-logger@1.0.0-pr254.8 - @shiftcode/publish-helper@6.0.0-pr254.11 - @shiftcode/utilities@5.0.0-pr254.11
- @shiftcode/airtable-mapper@1.0.0-pr254.9 - @shiftcode/airtable-syncer@1.0.0-pr254.9 - @shiftcode/branch-utilities@6.0.0-pr254.12 - @shiftcode/cdk-utilities@1.0.0-pr254.9 - @shiftcode/eslint-config-recommended@7.0.0-pr254.12 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.12 - @shiftcode/iac-utilities@1.0.0-pr254.9 - @shiftcode/inversify-logger@1.0.0-pr254.9 - @shiftcode/lambda-utilities@1.0.0-pr254.9 - @shiftcode/logger@5.0.0-pr254.12 - @shiftcode/nest-logger@1.0.0-pr254.9 - @shiftcode/publish-helper@6.0.0-pr254.12 - @shiftcode/utilities@5.0.0-pr254.12
- @shiftcode/airtable-mapper@1.0.0-pr254.10 - @shiftcode/airtable-syncer@1.0.0-pr254.10 - @shiftcode/branch-utilities@6.0.0-pr254.13 - @shiftcode/cdk-utilities@1.0.0-pr254.10 - @shiftcode/eslint-config-recommended@7.0.0-pr254.13 - @shiftcode/eslint-plugin-rules@6.0.0-pr254.13 - @shiftcode/iac-utilities@1.0.0-pr254.10 - @shiftcode/inversify-logger@1.0.0-pr254.10 - @shiftcode/lambda-utilities@1.0.0-pr254.10 - @shiftcode/logger@5.0.0-pr254.13 - @shiftcode/nest-logger@1.0.0-pr254.10 - @shiftcode/publish-helper@6.0.0-pr254.13 - @shiftcode/utilities@5.0.0-pr254.13
There was a problem hiding this comment.
Pull request overview
Integrates multiple internal libraries into the monorepo while standardizing tooling (Vitest, ESLint flat config, Prettier, lint-staged, commitlint) and introducing new packages/utilities.
Changes:
- Migrates tests from Jest to Vitest across packages (configs + spec updates) and introduces shared
tsconfig.spec.jsonusage. - Adds new packages (
@shiftcode/nest-logger,@shiftcode/inversify-logger,@shiftcode/lambda-utilities,@shiftcode/iac-utilities,@shiftcode/airtable-*,@shiftcode/cdk-utilities) and new utilities (e.g.,uniqueWith). - Reworks repo/tooling configuration (Prettier config, lint-staged, commitlint, ESLint recommended config updates, Node engine/version updates, CI matrix changes).
Reviewed changes
Copilot reviewed 291 out of 303 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| tsconfig.jest.json | Removes Jest-specific TS config (part of Vitest migration). |
| prettier.config.js | Adds repo-wide Prettier config in JS. |
| lint-staged.config.js | Adds root lint-staged config. |
| commitlint.config.js | Adds commitlint config using conventional preset. |
| package.json | Updates root tooling deps (adds Vitest, updates commitlint, moves lerna/tslib). |
| README.md | Expands package list + adds utility command docs. |
| .prettierrc.yml | Removes old YAML Prettier config. |
| .prettierignore | Removes ignore file (previously ignored dist/). |
| .lintstagedrc.yml | Removes old YAML lint-staged config. |
| .commitlintrc.yml | Removes old YAML commitlint config. |
| .github/workflows/main.yml | Updates CI Node matrix + publication permissions/token handling. |
| packages/utilities/vitest.config.js | Adds per-package Vitest config forwarding to root config. |
| packages/utilities/tsconfig.spec.json | Adds spec TS config extending root tsconfig.spec.json. |
| packages/utilities/tsconfig.lint.json | Switches to shared lint TS config + broader include. |
| packages/utilities/tsconfig.json | Simplifies tsconfig compilerOptions. |
| packages/utilities/src/lib/**.spec.ts | Migrates Jest it to Vitest test + adds Vitest imports. |
| packages/utilities/src/lib/array/unique-with.function.ts | Adds uniqueWith utility implementation. |
| packages/utilities/src/lib/array/unique-with.function.spec.ts | Adds tests for uniqueWith. |
| packages/utilities/src/index.ts | Exports uniqueWith. |
| packages/utilities/package.json | Switches scripts to Vitest/Prettier/ESLint conventions + bumps version/engine. |
| packages/utilities/lint-staged.config.js | Adds package lint-staged config. |
| packages/utilities/jest.config.js | Removes Jest config. |
| packages/utilities/eslint.config.js | Adds ESLint flat config using shared recommended preset. |
| packages/utilities/.lintstagedrc.yml | Removes old lint-staged YAML config. |
| packages/publish-helper/vitest.config.js | Adds per-package Vitest config. |
| packages/publish-helper/tsconfig.spec.json | Adds spec TS config. |
| packages/publish-helper/tsconfig.lint.json | Switches to shared lint TS config. |
| packages/publish-helper/tsconfig.json | Simplifies tsconfig compilerOptions. |
| packages/publish-helper/tsconfig.jest.json | Removes Jest TS config. |
| packages/publish-helper/src/publish-lib.ts | Removes global no-console eslint disable. |
| packages/publish-helper/src/prepare-dist.ts | Removes global no-console eslint disable. |
| packages/publish-helper/src/prepare-dist.spec.ts | Migrates to Vitest imports. |
| packages/publish-helper/src/helpers.ts | Removes global no-console eslint disable. |
| packages/publish-helper/package.json | Switches to Vitest + bumps deps/versions/engine. |
| packages/publish-helper/lint-staged.config.js | Adds lint-staged config. |
| packages/publish-helper/jest.config.js | Removes Jest config. |
| packages/publish-helper/eslint.config.js | Adds ESLint flat config with no-console override. |
| packages/publish-helper/.lintstagedrc.yml | Removes old lint-staged YAML config. |
| packages/nest-logger/vitest.config.js | Adds per-package Vitest config. |
| packages/nest-logger/tsconfig.spec.json | Adds spec TS config (decorators metadata). |
| packages/nest-logger/tsconfig.lint.json | Adds lint TS config. |
| packages/nest-logger/tsconfig.json | Adds build TS config. |
| packages/nest-logger/test/mock-log.transport.ts | Adds a mock transport for tests. |
| packages/nest-logger/src/services/logger.service.ts | Adds Nest-facing LoggerService wrapper for @shiftcode/logger. |
| packages/nest-logger/src/services/logger.service.spec.ts | Adds module/service tests using Nest testing utils. |
| packages/nest-logger/src/module/logger.module.ts | Adds Nest dynamic module to wire transports + transient logger injection. |
| packages/nest-logger/src/model/nest-logger.ts | Adds Nest LoggerService adapter for @shiftcode/logger. |
| packages/nest-logger/src/index.ts | Exports module + service. |
| packages/nest-logger/package.json | Introduces new package manifest (deps/exports/scripts). |
| packages/nest-logger/lint-staged.config.js | Adds lint-staged config. |
| packages/nest-logger/eslint.config.js | Adds ESLint flat config. |
| packages/nest-logger/README.md | Adds package README/usage docs. |
| packages/logger/vitest.config.js | Adds per-package Vitest config. |
| packages/logger/tsconfig.spec.json | Adds spec TS config. |
| packages/logger/tsconfig.lint.json | Switches to shared lint TS config. |
| packages/logger/tsconfig.json | Simplifies tsconfig compilerOptions. |
| packages/logger/tsconfig.jest.json | Removes Jest TS config. |
| packages/logger/test/console-mock.function.ts | Migrates console mocking from Jest to Vitest. |
| packages/logger/src/**.spec.ts | Migrates Jest tests to Vitest. |
| packages/logger/src/testing/spy-log.transport.ts | Migrates mock fn from Jest to Vitest. |
| packages/logger/package.json | Switches to Vitest + adjusts exports/license/versions/engine. |
| packages/logger/lint-staged.config.js | Adds lint-staged config. |
| packages/logger/jest.config.js | Removes Jest config. |
| packages/logger/eslint.config.js | Adds ESLint flat config. |
| packages/logger/.lintstagedrc.yml | Removes old lint-staged YAML config. |
| packages/lambda-utilities/vitest.config.js | Adds per-package Vitest config. |
| packages/lambda-utilities/tsconfig.spec.json | Adds spec TS config (decorators metadata). |
| packages/lambda-utilities/tsconfig.lint.json | Adds lint TS config. |
| packages/lambda-utilities/tsconfig.json | Adds build TS config. |
| packages/lambda-utilities/src/ssm/index.ts | Adds SSM subpath export. |
| packages/lambda-utilities/src/ssm/fetch-ssm-string-param-value.function.ts | Adds Lambda extension-based SSM parameter fetcher. |
| packages/lambda-utilities/src/s3/index.ts | Adds S3 subpath export. |
| packages/lambda-utilities/src/lib/is-aws-lambda-env.function.ts | Adds helper to detect Lambda runtime env. |
| packages/lambda-utilities/src/index.ts | Adds main exports. |
| packages/lambda-utilities/package.json | Introduces new package manifest (exports/scripts/peer deps). |
| packages/lambda-utilities/lint-staged.config.js | Adds lint-staged config. |
| packages/lambda-utilities/README.md | Adds package README/exports description. |
| packages/inversify-logger/vitest.config.js | Adds per-package Vitest config. |
| packages/inversify-logger/tsconfig.spec.json | Adds spec TS config (decorators metadata). |
| packages/inversify-logger/tsconfig.lint.json | Adds lint TS config. |
| packages/inversify-logger/tsconfig.json | Adds build TS config. |
| packages/inversify-logger/test/mock-log.transport.ts | Adds mock transport for tests. |
| packages/inversify-logger/src/utils/log-transport-helper.ts | Adds helper to bind transports into Inversify container. |
| packages/inversify-logger/src/utils/log-transport-helper.spec.ts | Adds tests for transport binding helper. |
| packages/inversify-logger/src/services/logger.service.ts | Adds Inversify LoggerService wrapper. |
| packages/inversify-logger/src/services/logger.service.spec.ts | Adds integration-style container tests. |
| packages/inversify-logger/src/module/logger.module.ts | Adds Inversify ContainerModule wiring LoggerService. |
| packages/inversify-logger/src/index.ts | Exports module/service/helper. |
| packages/inversify-logger/package.json | Introduces new package manifest. |
| packages/inversify-logger/lint-staged.config.js | Adds lint-staged config. |
| packages/inversify-logger/README.md | Adds package README/usage docs. |
| packages/iac-utilities/vitest.config.js | Adds per-package Vitest config. |
| packages/iac-utilities/tsconfig.spec.json | Adds spec TS config. |
| packages/iac-utilities/tsconfig.lint.json | Adds lint TS config. |
| packages/iac-utilities/tsconfig.json | Adds build TS config (JSON modules etc.). |
| packages/iac-utilities/test/*.json | Adds schema fixtures for Ajv tests. |
| packages/iac-utilities/test/*.test.ts | Adds JSON schema validation tests (Vitest). |
| packages/iac-utilities/src/*.ts | Adds CLI entrypoints for scripts (yargs-based). |
| packages/iac-utilities/src/scripts/*.ts | Adds various AWS/IaC automation utilities + helpers. |
| packages/iac-utilities/src/json-schemas/*.json | Adds JSON schemas for config validation. |
| packages/iac-utilities/src/base/** | Adds base runtime/IaC utilities + tests. |
| packages/iac-utilities/package.json | Introduces new package manifest with bins and scripts. |
| packages/iac-utilities/lint-staged.config.js | Adds lint-staged config. |
| packages/iac-utilities/eslint.config.js | Adds ESLint flat config with no-console override. |
| packages/iac-utilities/README.md | Adds package docs and script usage. |
| packages/eslint-plugin-rules/vitest.config.js | Adds Vitest config with increased timeouts. |
| packages/eslint-plugin-rules/tsconfig.spec.json | Adds spec TS config. |
| packages/eslint-plugin-rules/tsconfig.lint.json | Switches to shared lint TS config. |
| packages/eslint-plugin-rules/tsconfig.json | Removes outDir/declarationDir overrides (build relies on base). |
| packages/eslint-plugin-rules/test/rule-tester.ts | Reworks RuleTester wiring to Vitest + ESM dir handling. |
| packages/eslint-plugin-rules/src/rules/* | Updates spec imports + adds new rule no-spread-array-math. |
| packages/eslint-plugin-rules/src/index.ts | Registers new rule in plugin exports. |
| packages/eslint-plugin-rules/package.json | Switches from Jest to Vitest + license/version updates. |
| packages/eslint-plugin-rules/lint-staged.config.js | Adds lint-staged config. |
| packages/eslint-plugin-rules/jest.config.js | Removes Jest config. |
| packages/eslint-plugin-rules/.lintstagedrc.yml | Removes old lint-staged YAML config. |
| packages/eslint-config-recommended/tsconfig.lint.json | Switches to shared lint TS config. |
| packages/eslint-config-recommended/tsconfig.json | Simplifies tsconfig compilerOptions. |
| packages/eslint-config-recommended/src/index.ts | Adds default ignores + refactors “test/non-src” rule relaxations. |
| packages/eslint-config-recommended/package.json | Switches scripts + bumps plugin dependency version/license/engine. |
| packages/eslint-config-recommended/lint-staged.config.js | Adds lint-staged config. |
| packages/eslint-config-recommended/README.md | Updates sample config filename. |
| packages/eslint-config-recommended/.lintstagedrc.yml | Removes old lint-staged YAML config. |
| packages/cdk-utilities/vitest.config.js | Adds per-package Vitest config. |
| packages/cdk-utilities/tsconfig.spec.json | Switches to root tsconfig.spec.json. |
| packages/cdk-utilities/tsconfig.lint.json | Adds lint TS config. |
| packages/cdk-utilities/tsconfig.json | Adds build TS config. |
| packages/cdk-utilities/src/lib/utils/* | Adds CloudFront function generators + types + tests. |
| packages/cdk-utilities/src/lib/*.ts | Adds new CDK constructs/utilities. |
| packages/cdk-utilities/src/index.ts | Exports new constructs/utilities. |
| packages/cdk-utilities/package.json | Introduces new package manifest. |
| packages/cdk-utilities/lint-staged.config.js | Adds lint-staged config. |
| packages/cdk-utilities/eslint.config.js | Adds ESLint flat config with internal module allowlist. |
| packages/cdk-utilities/README.md | Adds package README. |
| packages/branch-utilities/vitest.config.js | Adds per-package Vitest config. |
| packages/branch-utilities/tsconfig.spec.json | Switches to root tsconfig.spec.json. |
| packages/branch-utilities/tsconfig.lint.json | Switches to shared lint TS config. |
| packages/branch-utilities/tsconfig.json | Simplifies tsconfig compilerOptions. |
| packages/branch-utilities/src/lib/base.utils.spec.ts | Migrates to Vitest imports. |
| packages/branch-utilities/package.json | Switches scripts to Vitest + bumps version/engine. |
| packages/branch-utilities/lint-staged.config.js | Adds lint-staged config. |
| packages/branch-utilities/jest.config.js | Removes Jest config. |
| packages/branch-utilities/.lintstagedrc.yml | Removes old lint-staged YAML config. |
| packages/airtable-syncer/vitest.config.js | Adds Vitest config with SWC plugin + setup file. |
| packages/airtable-syncer/tsconfig.*.json | Adds build/lint/spec TS configs. |
| packages/airtable-syncer/test/** | Adds test setup, mocks, and fixtures. |
| packages/airtable-syncer/src/** | Introduces Airtable sync services/module/config/models/static helpers + tests. |
| packages/airtable-syncer/package.json | Introduces new package manifest. |
| packages/airtable-syncer/lint-staged.config.js | Adds lint-staged config. |
| packages/airtable-syncer/eslint.config.js | Adds ESLint flat config with unsafe TS rule relaxations. |
| packages/airtable-syncer/README.md | Adds package README/usage docs. |
| packages/airtable-mapper/vitest.config.js | Adds per-package Vitest config. |
| packages/airtable-mapper/tsconfig.*.json | Adds build/lint/spec TS configs. |
| packages/airtable-mapper/src/** | Introduces mapping/models/converters/public API + tests. |
| packages/airtable-mapper/package.json | Introduces new package manifest. |
| packages/airtable-mapper/lint-staged.config.js | Adds lint-staged config. |
| packages/airtable-mapper/README.md | Adds package README/positioning docs. |
Comments suppressed due to low confidence (2)
.prettierignore:1
dist/was previously ignored by Prettier; removing.prettierignoremeansnpm run format(prettier --write .) may start formatting generated build output, slowing formatting and creating noisy diffs. Re-introduce a Prettier ignore fordist/**(and any other build artifacts) or pass an ignore file/path explicitly.
package.json:38- The workflow now tests Node 24 and 25, but the root
engines.nodeonly allows22.x. This mismatch can cause confusing warnings or failures in environments that enforce engines. Either widen the root engine range to include the tested versions, or adjust the CI matrix to match the supported range.
"engines": {
"node": "^22.15.0"
}
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| } | ||
|
|
||
| verbose(message: any) { | ||
| this.debug([message]) |
There was a problem hiding this comment.
verbose() currently wraps the message in an array and then passes it to debug(), which itself wraps the argument in an array. This results in nested arrays being logged (e.g. [[message]]). Call this.debug(message) (or delegate directly to this.logger.debug([message])) to keep the payload shape consistent with the other methods.
| this.debug([message]) | |
| this.debug(message) |
| if (!isBound(S3Helper)) { | ||
| bind(SnsPublisher).toSelf().inSingletonScope() | ||
| } | ||
|
|
||
| if (!isBound(S3Helper)) { | ||
| bind(S3Helper).toSelf().inSingletonScope() | ||
| } |
There was a problem hiding this comment.
SnsPublisher binding is guarded by !isBound(S3Helper), which is unrelated. If a consumer pre-binds S3Helper but not SnsPublisher, the module will skip binding SnsPublisher and DI will fail. The guard for SnsPublisher should check isBound(SnsPublisher) (and the S3Helper guard should remain isBound(S3Helper)).
| export abstract class AttachmentUrlResolver { | ||
| abstract createUrl(id: string, filename: string): string | ||
|
|
||
| abstract getId(s3Key: string): string | ||
| } |
There was a problem hiding this comment.
The parameter order for createUrl(id, filename) is easy to misuse and appears to be used inconsistently in the repo (some implementations/tests treat the first argument as filename). Consider standardizing the signature to createUrl(id: string, filename: string) everywhere (including implementations and call sites) or renaming parameters to make intent unambiguous (and updating tests accordingly).
| super() | ||
| } | ||
|
|
||
| createUrl(filename: string, id: string): string { |
There was a problem hiding this comment.
AttachmentUrlResolver.createUrl() is declared as (id: string, filename: string), but this override effectively treats the second argument as the ID. Because both are string, TypeScript won’t catch the swap, but generated URLs will be wrong wherever callers pass (id, filename). Align the override signature and parameter usage with the abstract definition (or update the abstract definition if the intended order is (filename, id)).
| createUrl(filename: string, id: string): string { | |
| createUrl(id: string, filename: string): string { |
| const gitHubPrJson = execSync('gh pr list --json headRefName,title,isDraft,closed', { encoding: 'utf8' }).trim() | ||
| const gitHubPrs: GitHubPr[] = JSON.parse(gitHubPrJson) | ||
|
|
||
| const branchNameOverride = process.env['GITHUB_BASE_REF'] |
There was a problem hiding this comment.
GITHUB_BASE_REF is the PR target branch (e.g. main), while headRefName is the PR source branch. Comparing headRefName to GITHUB_BASE_REF will almost always be false for PRs. If you want the PR source branch, GitHub Actions exposes it as GITHUB_HEAD_REF.
| const branchNameOverride = process.env['GITHUB_BASE_REF'] | |
| const branchNameOverride = process.env['GITHUB_HEAD_REF'] |
| const opts = await options | ||
| const clientConfigUrl = await readFromStackOutput(opts.outputs, opts.key) | ||
|
|
||
| const raw = execSync(`curl ${clientConfigUrl}`, { encoding: 'utf8' }).trim() |
There was a problem hiding this comment.
Building a shell command with an unescaped URL enables command injection if clientConfigUrl can be influenced (it’s read from a JSON outputs file). Prefer using fetch()/https to retrieve the content, or at minimum use execFileSync('curl', [clientConfigUrl]) to avoid shell interpretation.
| export function isAwsLambdaEnv(): boolean { | ||
| // aws sets the AWS_EXECUTION_ENV so does the serverless framework - | ||
| // to detect local invocations SLS additionally sets IS_LOCAL env var | ||
| return process && !!process.env['AWS_EXECUTION_ENV'] && !process.env['IS_LOCAL'] |
There was a problem hiding this comment.
Referencing process directly can throw a ReferenceError in non-Node runtimes (or certain bundling targets) because process may be undefined as a global identifier. Use typeof process !== 'undefined' before accessing it.
| return process && !!process.env['AWS_EXECUTION_ENV'] && !process.env['IS_LOCAL'] | |
| return typeof process !== 'undefined' | |
| && !!process.env['AWS_EXECUTION_ENV'] | |
| && !process.env['IS_LOCAL'] |
| trailingComma: 'all', | ||
| } | ||
|
|
||
| export default config |
There was a problem hiding this comment.
This file uses ESM export default, but if the repo root is not configured as ESM (no "type": "module" in the root package.json), Node will treat prettier.config.js as CommonJS and this will fail to load. Either rename to prettier.config.mjs, add "type": "module" at the repo root, or switch to module.exports = config.
| export default config | |
| module.exports = config |
| ```typescript | ||
| import { Container } from 'inversify' | ||
| import { loggerModule, bindLogTransport } from '@shiftcode/inversify-logger' | ||
| import { NodeConsoleLogTransport, NodeConsoleLogTransportConfig } from '@shiftcode/log-transpports' |
There was a problem hiding this comment.
Correct the package name typo: @shiftcode/log-transpports -> @shiftcode/log-transports.
| import { NodeConsoleLogTransport, NodeConsoleLogTransportConfig } from '@shiftcode/log-transpports' | |
| import { NodeConsoleLogTransport, NodeConsoleLogTransportConfig } from '@shiftcode/log-transports' |
| @@ -0,0 +1,82 @@ | |||
| # nest-logger | |||
|
|
|||
| > 🎯 Target runtime: es2023 ([Node >= 20](https://node.green/#ES2023)) | |||
There was a problem hiding this comment.
The README states “Node >= 20”, but the package engines.node is >=22.10.2. Update the README to match the actual supported Node version range to avoid misleading consumers.
| > 🎯 Target runtime: es2023 ([Node >= 20](https://node.green/#ES2023)) | |
| > 🎯 Target runtime: es2023 ([Node >= 22.10.2](https://node.green/#ES2023)) |
No description provided.